Virtual environment 3D pointer mapped to 2D windowed surface

ABSTRACT

A virtual display controller is configured to generate a virtual viewing location within a three-dimensional virtual interface within a virtual environment. Computer pointer input is translated to coordinates on a three-dimensional virtual interface, and interactions with objects and virtualized displays within that interface are passed back to the clients populating those objects.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit under 35 U.S.C. 119 to U.S. applicationSer. No. 62/164,529 filed on May 21, 2015, and incorporated herein byreference in its entirety.

BACKGROUND

Virtual reality allows people to interact with object in a threedimensional virtual space. A problem arises due to the fact thatstandard means of interacting with a computer were developed to interactwith a flat two-axis computer interface in a non-immersive environment.As such, interaction with a virtual interface typically renders the userunable to use standard computer pointing equipment efficiently or insome cases, at all. Users wanting to interact with objects in a virtualenvironment are often restricted to specialized interface controls. Incases where the user is able to use more standard computer interfacecontrols, the operation of these controls is often not well suited, orable, to transition between operating naturally in a standardtwo-dimensional computer environment and an immersive three-dimensionalvirtual environment.

BRIEF SUMMARY

The following summary is intended to highlight and introduce someaspects of the disclosed embodiments, but not to limit the scope of theclaims. Thereafter, a detailed description of illustrated embodiments ispresented, which will permit one skilled in the relevant art to make anduse various embodiments.

In one embodiment, the movement of the computer pointer is mapped to athree-dimensional virtual interface wrapping the user's field of vision.The computer pointer is transformed into a virtual vector, allowing theuser to interact with objects at any distance within the virtualenvironment.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

To easily identify the discussion of any particular element or act, themost significant digit or digits in a reference number refer to thefigure number in which that element is first introduced.

FIG. 1 illustrates an embodiment of a system for mapping a 2D windowedenvironment to a 3D pointer 100

FIG. 2 illustrates process for mapping a 2D windowed environment to a 3Dpointer 200 in accordance with one embodiment.

FIG. 3 illustrates an aspect of the system for mapping a 2D windowedenvironment to a 3D pointer 300 in accordance with one embodiment.

FIG. 4 illustrates an aspect of the system for mapping a 2D windowedenvironment to a 3D pointer 400 in accordance with one embodiment.

FIG. 5 illustrates an aspect of the system for mapping a 2D windowedenvironment to a 3D pointer 500 in accordance with one embodiment.

FIG. 6 illustrates an aspect of system for mapping a 2D windowedenvironment to a 3D pointer 600 in accordance with one embodiment.

FIG. 7 illustrates a digital apparatus 700 that may implement aspects ofthe machine processes described herein.

FIG. 8 illustrates a system 800 in accordance with one embodiment.

DETAILED DESCRIPTION Glossary

“computer pointing device” in this context refers to a device totranslate movements made by a user into movements within a computersystem, such as a mouse, joystick, or device utilizing motion capture oracceleration, generally to control the movement of a pointer or visualangle of display on a user interface.

“logic” in this context refers to machine memory circuits, machinereadable media, and/or circuitry which by way of its material and/ormaterial-energy configuration comprises control and/or proceduralsignals, and/or settings and values (such as resistance, impedance,capacitance, inductance, current/voltage ratings, etc.), that may beapplied to influence the operation of a device. Magnetic media,electronic circuits, electrical and optical memory (both volatile andnonvolatile), and firmware are examples of logic. Logic specificallyexcludes pure signals or software per se (however does not excludemachine memories comprising software and thereby forming configurationsof matter).

“3D virtual interface” in this context refers to a user-interface,having a curved, flat or polyhedral surface, or subsets of suchsurfaces, existing in a three dimensional virtual environment.

“viewing plane” in this context refers to a viewable planar area tangentto the surface of the 3D virtual interface at the point of intersectionof the virtual vector with the 3d virtual interface, such that when theuser looks directly at the intersection point of the virtual vector andthe 3d virtual interface the plane would be and approximately orthogonalto the user's line of sight.

“virtual environment” in this context refers to an immersivethree-dimensional digital environment or image that can be interactedwith in a seemingly physical manner.

“virtual object” in this context refers to an object rendered withinvirtual reality

“virtual viewing location” in this context refers to location within avirtual environment that proves a reference point for the viewingperspective of the user, that is, the “location” of the user within thevirtual environment.

“virtualized display” in this context refers to a representation of acomputer display or output, depicting an interface device such as atelevision or computer monitor screen within a virtual environment.

Description

Embodiments of a system and process are disclosed that map a 3D pointerto a 2D windowed surface. In one embodiment a machine system incommunication with a computing device and computer pointing devicereceives input from the computing device about the position and movementof a computer pointer and transforms that input into a signal to controluser interaction with a three-dimensional virtual environment. Theposition or delta signal received from a computer pointing device istransformed into a first location signal indication corresponding tocoordinates on a three-dimensional virtual interface which may beconcave in relation to the virtual viewing location within the virtualenvironment and encompass at least part of the user's field of viewwithin the virtual environment. In some embodiments, the virtualinterface may be a three-dimensional shape such as an ellipsoid,cylinder or polyhedron which the user is viewing from a perspectivewithin the ellipsoid or polyhedron. In some embodiments, the dimensionsof the virtual interface may surround the user completely, or optionallybe restricted longitudinally and latitudinally so that it does not covera full 360 degrees of possible viewing area.

In some embodiments, logic receives a location indication from a virtualinterface and transforms the location into an interaction correspondingto coordinates on a virtualized display within the interface. In someembodiments, logic receives a location from a virtual interface andtransforms the location into an interaction signal corresponding tocoordinates on an object within the interface. A user may interact withobjects within the virtual environment through the computer pointingdevice, in some embodiments this may include virtualized displays suchas virtual representations of computer monitor displays. Userinteractions with objects like these may be translated back totwo-dimensional signals and relayed back to the the computing device anddisplay device such as a monitor or television. In one embodiment, thesystem may compensate for a transition from empty space within a virtualenvironment to an object within the virtual environment by adapting thescaling of mouse movements or the mouse sensitivity to give a finerdegree of control on an object. For example, a user may want to quicklytraverse open space within the virtual environment, but then require afiner degree of control within a virtualized display in order to dographic design work.

In some embodiments the computer pointing device may be any type ofcomputer pointing device such as a standard track pad/track ball,pen/stylus, mouse, joystick, inertial-based gestural control mechanism,video gesture recognition or other method to enable computerinteraction.

In some embodiments, a cartesian coordinate system may be converted to acylindrical or spherical coordinate system to map the pointer movementsfrom the computer pointer within a standard 2D plane to a 3D plane.

In one embodiment, the translation logic 104 and translation logic 114may utilize a standard conversion of cartesian to spherical coordinates,wherein r is the radius, theta is the inclination and phi is theazimuth.x=r sin θ cos φ

-   -   spherical conversion for x coordinates        y=r sin θ sin φ    -   spherical conversion for y coordinates        z=r cos θ    -   spherical conversion for z coordinates

In another embodiment, the translation logic 104 and translation logic114 may use cylindrical coordinate systems to calculate the virtualvector, the coordinates rho, phi and z delineate the cylindricalcoordinates of a point, wherein rho is the straight line distance fromthe z axis to the point, phi is the azimuth, that is, the angle betweena reference direction on the chosen plane and the line from the originto the projection of the point on the plane, z is the distance from thechosen plane to the point.x=ρ cos φ

-   -   cylindrical conversion for x coordinates        y=ρ sin φ    -   cylindrical conversion for y coordinates

In some embodiments, logic which receives a the signal from a computerpointer or virtual interface transforms that signal into a pointer thatis a virtual vector which is non-parallel to the viewing plane, so as toallow the user to interact with objects within a virtual environmentregardless of the object's perceived distance from the user within thevirtual environment. This vector pointer allows the user to easilyselect objects regardless of the object's perceived distance from thevirtual viewing location. When calculating the virtual vector, a unitvector may also be used to calculate the virtual vector by multiplyingthe unit vector by a scalar to change the magnitude of the vector toallow for intersection with objects within the virtual environment.

Drawings

In one embodiment, the pointing device 102 sends a two-dimensional deltasignal to the translation logic 104 which receives the two-dimensionaldelta signal and transforms said two-dimensional delta signal into afirst location signal. The first location signal is then transmitted tothe 3D environment 110. The 3D environment 110 receives the firstlocation signal and transmits an interaction to 2D object 106, such as agraphical representation of a two dimensional display. The 2D object 106receives the interaction signal and transmits an event signal to thetranslation logic 114 which translates it into a 2d position signalwhich is transmitted to the client program. The 3D object 108 receivesthe interaction signal and transmits an event signal to the clientprogram.

The system for mapping a 2D windowed environment to a 3D pointer 100 maybe operated in accordance with process for mapping a 2D windowedenvironment to a 3D pointer 200.

System for mapping a 2D windowed environment to a 3D pointer 100comprises pointing device 102, translation logic 104, 3D environment110, 2D object 106, 3D object 108, translation logic 114, client 112 andclient 116.

In block 202, process for mapping a 2D windowed environment to a 3Dpointer 200 configures a virtual display controller to generate avirtual viewing location at least partially enclosed within athree-dimensional virtual interface within a virtual environment. Inblock 204, process for mapping a 2D windowed environment to a 3D pointer200 generates a virtual vector, that is non-parallel to the viewingplane, within the virtual environment. In block 206, process for mappinga 2D windowed environment to a 3D pointer 200 calculates a firstlocation signal corresponding to coordinates of the intersection of thevirtual vector with the viewing plane. In block 208, process for mappinga 2D windowed environment to a 3D pointer 200 receives a two-dimensionalplanar delta signal from a computer pointing device with at least oneaxis. In subroutine block 210, process for mapping a 2D windowedenvironment to a 3D pointer 200 transforms the two-dimensional planardelta signal into a three-dimensional planar delta signal. In subroutineblock 212, process for mapping a 2D windowed environment to a 3D pointer200 transforms the three-dimensional planar delta signal into a secondlocation signal corresponding to a second location on thethree-dimensional virtual interface. In block 214, process for mapping a2D windowed environment to a 3D pointer 200 calculates an intersectioncoordinate between the virtual vector. In block 216, process for mappinga 2D windowed environment to a 3D pointer 200 transmits an interactionsignal within the three-dimensional virtual interface to a clientinstantiating the virtual object. In done block 218, process for mappinga 2D windowed environment to a 3D pointer 200 ends.

In some embodiments, the process for mapping a 2D windowed environmentto a 3D pointer 200 may include configuring a virtual display controllerto generate a virtual viewing location at least partially enclosedwithin a three-dimensional virtual interface within a virtualenvironment; generating a virtual vector, that is non-parallel to theviewing plane, within the virtual environment; calculating a firstlocation signal corresponding to coordinates of the intersection of thevirtual vector with the viewing plane; receiving a two-dimensionalplanar delta signal from a computer pointing device with at least oneaxis; calculating an intersection coordinate between the virtual vectorand a virtual object within the virtual environment; and/or transmittingan interaction signal within the three-dimensional virtual interface toa client instantiating the virtual object.

In some embodiments, the three-dimensional virtual interface may includea viewing plane.

In some embodiments, receiving a two-dimensional planar delta signalfrom a computer pointing device with at least one axis may includetransforming the two-dimensional planar delta signal into athree-dimensional planar delta signal and/or transforming thethree-dimensional planar delta signal into a second location signalcorresponding to a second location on the three-dimensional virtualinterface.

In various embodiments, the initial point of the virtual vector may belocated in the center of the virtual environment, or adjacent to andbehind the virtual viewing location. The terminal point of the virtualvector may be located on the surface of the virtual environment. Amagnitude of the virtual vector may be infinite, and/or thethree-dimensional virtual interface may be a three dimensional shapesuch as an ellipsoid. The three-dimensional virtual interface may be athree dimensional shape such as a polyhedron, and/or dimensions of thethree-dimensional virtual interface may be restricted longitudinally andlatitudinally.

In some embodiments, the virtual object is a virtualized display and theintersection coordinate is transformed into an interaction signalcorresponding to coordinates on the virtualized display within thethree-dimensional virtual interface.

The process for mapping a 2D windowed environment to a 3D pointer 200improves the efficiency of a computer by allowing the use of a singlepointing device to be used to interact with multiple virtualizeddisplays and objects within a virtual environment. This allows a userwho is using a virtual display to control it from within the virtualenvironment through the use of a normal computer pointer, which canseamlessly interact with virtual objects as well as objects within thevirtualized displays, removing the need for the user to use differentdevices depending on whether the interaction occurs within a normalmonitor output or within the virtual environment. Further,

In one embodiment, the origin 308 of the virtual vector 320 ispositioned behind user perspective first location signal 302. In oneembodiment, three-dimensional virtual interface 316 is positioned withinvirtual environment 314 and virtualized display 306, virtualized display310, virtualized display 312, are rendered within the virtualenvironment 314 and virtualized display 306, virtualized display 312 andvirtualized display 310 are positioned on the three-dimensional virtualinterface 316. In one embodiment, the location of the computer pointer318 with an object within the virtual environment 314 such asvirtualized display 306 may be determined by calculating theintersection of virtual vector 320 with virtualized display 306.

In one embodiment, delta 412 is received from a computer pointer inputand translated into a movement of the intersection of initial virtualvector 414 to resultant virtual vector 408. This may translate threedimensional coordinate 416 into three-dimensional coordinate 404. Insome configurations, a virtualized display 402 is displayed on thethree-dimensional virtual interface 410. The intersection of virtualvector 408 with three-dimensional virtual interface 410 transforms thethree-dimensional coordinate 404 into two-dimensional coordinate 406 onvirtualized display 402 mapping the intersection location onto thecomputer desktop as a computer pointer location.

Virtualized display 504 is positioned in front of virtualized display502 the intersection 508 of virtual vector 514 with virtualized display504 and plots the location of the computer pointer according to thelocation of the intersection 508.

The origin 506 may remain the same for both virtual vector 512 andvirtual vector 514. In still further embodiments, the origin 506 ofvirtual vector 512 and virtual vector 514 may change depending on themovement of the vector so that the vector direction remains constant.

In one embodiment, the origin 606 of virtual vector 602 and virtualvector 614 occurs at the center of three-dimensional virtual interface608 and virtual environment 612. In one embodiment, virtual vector 614and virtual vector 602 may be rays, extending effectively infinitelybeyond intersection 610 and intersection 604 respectively. Theintersection 604 and intersection 610 may be used to plot the locationof a computer pointer within the 612.

Input devices 704 comprise transducers that convert physical phenomenoninto machine internal signals, typically electrical, optical or magneticsignals. Signals may also be wireless in the form of electromagneticradiation in the radio frequency (RF) range but also potentially in theinfrared or optical range. Examples of input devices 704 are keyboardswhich respond to touch or physical pressure from an object or proximityof an object to a surface, mice which respond to motion through space oracross a plane, microphones which convert vibrations in the medium(typically air) into device signals, scanners which convert opticalpatterns on two or three dimensional objects into device signals. Thesignals from the input devices 704 are provided via various machinesignal conductors (e.g., busses or network interfaces) and circuits tomemory 706.

The memory 706 is typically what is known as a first or second levelmemory device, providing for storage (via configuration of matter orstates of matter) of signals received from the input devices 704,instructions and information for controlling operation of the CPU 702,and signals from storage devices 710.

Information stored in the memory 706 is typically directly accessible tothe CPU 702 of the device. Signals input to the device cause thereconfiguration of the internal material/energy state of the memory 706,creating in essence a new machine configuration, influencing thebehavior of the digital apparatus 700 by affecting the behavior of theCPU 702 with control signals (instructions) and data provided inconjunction with the control signals.

Second or third level storage devices 710 may provide a slower buthigher capacity machine memory capability. Examples of storage devices710 are hard disks, optical disks, large capacity flash memories orother non-volatile memory technologies, and magnetic memories.

The CPU 702 may cause the configuration of the memory 706 to be alteredby signals in storage devices 710. In other words, the CPU 702 may causedata and instructions to be read from storage devices 710 in the memory706 from which may then influence the operations of CPU 702 asinstructions and data signals, and from which it may also be provided tothe output devices 708. The CPU 702 may alter the content of the memory706 by signaling to a machine interface of memory 706 to alter theinternal configuration, and then converted signals to the storagedevices 710 to alter its material internal configuration. In otherwords, data and instructions may be backed up from memory 706, which isoften volatile, to storage devices 710, which are often non-volatile.

Output devices 708 are transducers which convert signals received fromthe memory 706 into physical phenomenon such as vibrations in the air,or patterns of light on a machine display, or vibrations (i.e., hapticdevices) or patterns of ink or other materials (i.e., printers and 3-Dprinters).

The network interface 712 receives signals from the memory 706 andconverts them into electrical, optical, or wireless signals to othermachines, typically via a machine network. The network interface 712also receives signals from the machine network and converts them intoelectrical, optical, or wireless signals to the memory 706.

FIG. 8 illustrates several components of an exemplary system 800 inaccordance with one embodiment. In various embodiments, system 800 mayinclude a desktop PC, server, workstation, mobile phone, laptop, tablet,set-top box, appliance, or other computing device that is capable ofperforming operations such as those described herein. In someembodiments, system 800 may include many more components than thoseshown in FIG. 8. However, it is not necessary that all of thesegenerally conventional components be shown in order to disclose anillustrative embodiment. Collectively, the various tangible componentsor a subset of the tangible components may be referred to herein as“logic” configured or adapted in a particular way, for example as logicconfigured or adapted with particular software or firmware.

In various embodiments, system 800 may comprise one or more physicaland/or logical devices that collectively provide the functionalitiesdescribed herein. In some embodiments, system 800 may comprise one ormore replicated and/or distributed physical or logical devices.

In some embodiments, system 800 may comprise one or more computingresources provisioned from a “cloud computing” provider, for example,Amazon Elastic Compute Cloud (“Amazon EC2”), provided by Amazon.com,Inc. of Seattle, Wash.; Sun Cloud Compute Utility, provided by SunMicrosystems, Inc. of Santa Clara, Calif.; Windows Azure, provided byMicrosoft Corporation of Redmond, Wash., and the like.

System 800 includes a bus 802 interconnecting several componentsincluding a network interface 808, a display 806, a central processingunit 810, and a memory 804.

Memory 804 generally comprises a random access memory (“RAM”) andpermanent non-transitory mass storage device, such as a hard disk driveor solid-state drive. Memory 804 stores an operating system 812.

These and other software components may be loaded into memory 804 ofsystem 800 using a drive mechanism (not shown) associated with anon-transitory computer-readable medium 816, such as a floppy disc,tape, DVD/CD-ROM drive, memory card, or the like.

Memory 804 also includes database 814. In some embodiments, system 800may communicate with database 814 via network interface 808, a storagearea network (“SAN”), a high-speed serial bus, and/or via the othersuitable communication technology.

In some embodiments, database 814 may comprise one or more storageresources provisioned from a “cloud storage” provider, for example,Amazon Simple Storage Service (“Amazon S3”), provided by Amazon.com,Inc. of Seattle, Wash., Google Cloud Storage, provided by Google, Inc.of Mountain View, Calif., and the like.

References to “one embodiment” or “an embodiment” do not necessarilyrefer to the same embodiment, although they may. Unless the contextclearly requires otherwise, throughout the description and the claims,the words “comprise,” “comprising,” and the like are to be construed inan inclusive sense as opposed to an exclusive or exhaustive sense; thatis to say, in the sense of “including, but not limited to.” Words usingthe singular or plural number also include the plural or singular numberrespectively, unless expressly limited to a single one or multiple ones.Additionally, the words “herein,” “above,” “below” and words of similarimport, when used in this application, refer to this application as awhole and not to any particular portions of this application. When theclaims use the word “or” in reference to a list of two or more items,that word covers all of the following interpretations of the word: anyof the items in the list, all of the items in the list and anycombination of the items in the list, unless expressly limited to one orthe other. “Logic” refers to machine memory circuits, non transitorymachine readable media, and/or circuitry which by way of its materialand/or material-energy configuration comprises control and/or proceduralsignals, and/or settings and values (such as resistance, impedance,capacitance, inductance, current/voltage ratings, etc.), that may beapplied to influence the operation of a device. Magnetic media,electronic circuits, electrical and optical memory (both volatile andnonvolatile), and firmware are examples of logic. Logic specificallyexcludes pure signals or software per se (however does not excludemachine memories comprising software and thereby forming configurationsof matter). Those skilled in the art will appreciate that logic may bedistributed throughout one or more devices, and/or may be comprised ofcombinations memory, media, processing circuits and controllers, othercircuits, and so on. Therefore, in the interest of clarity andcorrectness logic may not always be distinctly illustrated in drawingsof devices and systems, although it is inherently present therein. Thetechniques and procedures described herein may be implemented via logicdistributed in one or more computing devices. The particulardistribution and choice of logic will vary according to implementation.Those having skill in the art will appreciate that there are variouslogic implementations by which processes and/or systems described hereincan be effected (e.g., hardware, software, and/or firmware), and thatthe preferred vehicle will vary with the context in which the processesare deployed. “Software” refers to logic that may be readily readaptedto different purposes (e.g. read/write volatile or nonvolatile memory ormedia). “Firmware” refers to logic embodied as read-only memories and/ormedia. Hardware refers to logic embodied as analog and/or digitalcircuits. If an implementer determines that speed and accuracy areparamount, the implementer may opt for a hardware and/or firmwarevehicle; alternatively, if flexibility is paramount, the implementer mayopt for a solely software implementation; or, yet again alternatively,the implementer may opt for some combination of hardware, software,and/or firmware. Hence, there are several possible vehicles by which theprocesses described herein may be effected, none of which is inherentlysuperior to the other in that any vehicle to be utilized is a choicedependent upon the context in which the vehicle will be deployed and thespecific concerns (e.g., speed, flexibility, or predictability) of theimplementer, any of which may vary. Those skilled in the art willrecognize that optical aspects of implementations may involveoptically-oriented hardware, software, and or firmware. The foregoingdetailed description has set forth various embodiments of the devicesand/or processes via the use of block diagrams, flowcharts, and/orexamples. Insofar as such block diagrams, flowcharts, and/or examplescontain one or more functions and/or operations, it will be understoodas notorious by those within the art that each function and/or operationwithin such block diagrams, flowcharts, or examples can be implemented,individually and/or collectively, by a wide range of hardware, software,firmware, or virtually any combination thereof. Several portions of thesubject matter described herein may be implemented via ApplicationSpecific Integrated Circuits (ASICs), Field Programmable Gate Arrays(FPGAs), digital signal processors (DSPs), or other integrated formats.However, those skilled in the art will recognize that some aspects ofthe embodiments disclosed herein, in whole or in part, can beequivalently implemented in standard integrated circuits, as one or morecomputer programs running on one or more computers (e.g., as one or moreprograms running on one or more computer systems), as one or moreprograms running on one or more processors (e.g., as one or moreprograms running on one or more microprocessors), as firmware, or asvirtually any combination thereof, and that designing the circuitryand/or writing the code for the software and/or firmware would be wellwithin the skill of one of skill in the art in light of this disclosure.In addition, those skilled in the art will appreciate that themechanisms of the subject matter described herein are capable of beingdistributed as a program product in a variety of forms, and that anillustrative embodiment of the subject matter described herein appliesequally regardless of the particular type of signal bearing media usedto actually carry out the distribution. Examples of a signal bearingmedia include, but are not limited to, the following: recordable typemedia such as floppy disks, hard disk drives, CD ROMs, digital tape,flash drives, SD cards, solid state fixed or removable storage, andcomputer memory. In a general sense, those skilled in the art willrecognize that the various aspects described herein which can beimplemented, individually and/or collectively, by a wide range ofhardware, software, firmware, or any combination thereof can be viewedas being composed of various types of “circuitry.” Consequently, as usedherein “circuitry” includes, but is not limited to, electrical circuitryhaving at least one discrete electrical circuit, electrical circuitryhaving at least one integrated circuit, electrical circuitry having atleast one application specific integrated circuit, circuitry forming ageneral purpose computing device configured by a computer program (e.g.,a general purpose computer configured by a computer program which atleast partially carries out processes and/or devices described herein,or a microprocessor configured by a computer program which at leastpartially carries out processes and/or devices described herein),circuitry forming a memory device (e.g., forms of random access memory),and/or circuitry forming a communications device (e.g., a modem,communications switch, or optical-electrical equipment). Those skilledin the art will recognize that it is common within the art to describedevices and/or processes in the fashion set forth herein, and thereafteruse standard engineering practices to integrate such described devicesand/or processes into larger systems. That is, at least a portion of thedevices and/or processes described herein can be integrated into anetwork processing system via a reasonable amount of experimentation.

What is claimed is:
 1. A method comprising: configuring a virtualdisplay controller to generate a virtual viewing location opticallycoincident to a three-dimensional virtual interface within a virtualenvironment, the three-dimensional virtual interface comprising aviewing plane; generating a virtual vector within the virtualenvironment, the virtual vector being non-parallel to the viewing planeat the virtual vector's point of intersection with the viewing plane;calculating a first location signal corresponding to coordinates of theintersection of the virtual vector with the viewing plane; receiving atwo-dimensional planar delta signal from a computer pointing device withat least one axis, the two-dimensional planar delta signal comprisingcartesian coordinates, the cartesian coordinates comprising anx-coordinate and a y-coordinate registered by the computer pointingdevice; transforming the two-dimensional planar delta signal into athree-dimensional planar delta signal, the three-dimensional planardelta signal comprising a spherical coordinate transformation orcylindrical coordinate transformation of the two-dimensional planardelta signal from the computer pointing device; transforming saidthree-dimensional planar delta signal and the first location signal intoa second location signal corresponding to a second location on saidthree-dimensional virtual interface; calculating an intersectioncoordinate between the virtual vector and a virtual object within thevirtual environment based on the second location signal; transformingthe intersection coordinate into an interaction signal; and transmittingthe interaction signal within said three-dimensional virtual interfaceto a client instantiating the virtual object.
 2. The method of claim 1wherein the virtual vector comprises an origin located in the center ofthe virtual environment.
 3. The method of claim 1 wherein the virtualvector comprises an origin adjacent to and behind the virtual viewinglocation.
 4. The method of claim 1 wherein the virtual vector comprisesa terminal point located on the surface of the virtual environment. 5.The method of claim 1 wherein a magnitude of the virtual vector isinfinite.
 6. The method of claim 1 wherein the three-dimensional virtualinterface is an ellipsoid.
 7. The method of claim 1 wherein saidthree-dimensional virtual interface is a polyhedron.
 8. The method ofclaim 1 wherein dimensions of said three-dimensional virtual interfaceis restricted longitudinally and latitudinally.
 9. The method of claim 1wherein the virtual object is a virtualized display and the intersectioncoordinate is transformed into an interaction signal corresponding tocoordinates on the virtualized display within the virtual environment.10. A computing apparatus, the computing apparatus comprising: aprocessor; and a memory storing instructions that, when executed by theprocessor, configure the apparatus to: configure a virtual displaycontroller to generate a virtual viewing location at least partiallyenclosed within a three-dimensional virtual interface within a virtualenvironment, the three-dimensional virtual interface comprising aviewing plane; generate a virtual vector, that is non-parallel to theviewing plane, within the virtual environment; calculate a firstlocation signal corresponding to coordinates of the intersection of thevirtual vector with the viewing plane; receive a two-dimensional planardelta signal from a computer pointing device with at least one axis, thetwo-dimensional planar delta signal comprising cartesian coordinates,the cartesian coordinates comprising an x-coordinate and a y-coordinateregistered by the computer pointing device; transform thetwo-dimensional planar delta signal into a three-dimensional planardelta signal, the three-dimensional planar delta signal comprising aspherical coordinate transformation or cylindrical coordinatetransformation of the two-dimensional planar delta signal from thecomputer pointing device; transform said three-dimensional planar deltasignal and the first location signal into a second location signalcorresponding to a second location on said three-dimensional virtualinterface; calculate an intersection coordinate between the virtualvector and a virtual object within the virtual environment based on thesecond location signal; transform the intersection coordinate into aninteraction signal; and transmit the interaction signal within saidthree-dimensional virtual interface to a client instantiating thevirtual object.
 11. The computing apparatus of claim 10 wherein thevirtual vector comprises an initial point located in the center of thevirtual environment.
 12. The computing apparatus of claim 10 wherein thevirtual vector comprises an initial point adjacent to and behind thevirtual viewing location.
 13. The computing apparatus of claim 10wherein the virtual vector comprises a terminal point located on thesurface of the virtual environment.
 14. The computing apparatus of claim10 wherein a magnitude of the virtual vector is infinite.
 15. Thecomputing apparatus of claim 10 wherein the three-dimensional virtualinterface is an ellipsoid.
 16. The computing apparatus of claim 10wherein said three-dimensional virtual interface is a polyhedron. 17.The computing apparatus of claim 10 wherein dimensions of saidthree-dimensional virtual interface is restricted longitudinally andlatitudinally.
 18. The computing apparatus of claim 10 wherein thevirtual object is a virtualized display and the intersection coordinateis transformed into an interaction signal corresponding to coordinateson the virtualized display within the virtual environment.